using UnityEngine;
using System.Collections.Generic;
using EnhancedUI;
using EnhancedUI.EnhancedScroller;
namespace EnhancedScrollerDemos.CellEvents
{
///
/// This demo shows how you can respond to events from your cells views using delegates
///
public class Controller : MonoBehaviour, IEnhancedScrollerDelegate
{
private List _data;
public EnhancedScroller scroller;
public EnhancedScrollerCellView cellViewPrefab;
public float cellSize;
void Start()
{
scroller.Delegate = this;
LoadData();
}
private void LoadData()
{
_data = new List();
for (var i = 0; i < 24; i++)
_data.Add(new Data() { hour = i });
}
#region EnhancedScroller Handlers
public int GetNumberOfCells(EnhancedScroller scroller)
{
return _data.Count;
}
public float GetCellViewSize(EnhancedScroller scroller, int dataIndex)
{
return cellSize;
}
public EnhancedScrollerCellView GetCellView(EnhancedScroller scroller, int dataIndex, int cellIndex)
{
CellView cellView = scroller.GetCellView(cellViewPrefab) as CellView;
// Set handlers for the cell views delegates.
// Each handler will respond to a different type of event
cellView.cellButtonTextClicked = CellButtonTextClicked;
cellView.cellButtonFixedIntegerClicked = CellButtonFixedIntegerClicked;
cellView.cellButtonDataIntegerClicked = CellButtonDataIntegerClicked;
cellView.SetData(_data[dataIndex]);
return cellView;
}
#endregion
///
/// Handler for when the cell view fires a fixed text button click event
///
/// value of the text
private void CellButtonTextClicked(string value)
{
Debug.Log("Cell Text Button Clicked! Value = " + value);
}
///
/// Handler for when the cell view fires a fixed integer button click event
///
/// value of the integer
private void CellButtonFixedIntegerClicked(int value)
{
Debug.Log("Cell Fixed Integer Button Clicked! Value = " + value);
}
///
/// Handler for when the cell view fires a data integer button click event
///
/// value of the integer
private void CellButtonDataIntegerClicked(int value)
{
Debug.Log("Cell Data Integer Button Clicked! Value = " + value);
}
}
}